package com.jy.rhin.facade.ws.registration.organization;

import static com.jy.rhin.config.NamespaceConstants.NS_RHIN;

import javax.jws.WebMethod;
import javax.jws.WebParam;
import javax.jws.WebResult;
import javax.jws.WebService;
import javax.jws.soap.SOAPBinding;
import javax.xml.bind.annotation.XmlSeeAlso;

import cn.org.chiss.rhin._2015.registration.organization.OrganizationFeed;
import cn.org.chiss.rhin._2015.registration.organization.OrganizationFeedResponse;
import cn.org.chiss.rhin._2015.registration.organization.OrganizationQueryRequest;
import cn.org.chiss.rhin._2015.registration.organization.OrganizationQueryResponseMessage;

@WebService(targetNamespace = NS_RHIN, name = "OrganizationProvider")
@SOAPBinding(parameterStyle = SOAPBinding.ParameterStyle.BARE)
//@XmlSeeAlso({org.oasis_open.docs.wsrf.bf_2.ObjectFactory.class, org.oasis_open.docs.wsrf.bf_2.ObjectFactory.class, org.oasis_open.docs.wsn.b_2.ObjectFactory.class, org.oasis_open.docs.wsn.t_1.ObjectFactory.class})
public interface OrganizationProvider {

    @WebMethod(operationName = "OrganizationFeed", action = "OrganizationFeed")
    @WebResult(name = "OrganizationFeedResponse", targetNamespace = NS_RHIN, partName = "message")
    public OrganizationFeedResponse organizationFeed(
        @WebParam(partName = "message", name = "OrganizationFeed", targetNamespace = NS_RHIN)
        OrganizationFeed message
    );

    @WebMethod(operationName = "OrganizationQuery", action = "OrganizationQuery")
    @WebResult(name = "OrganizationQueryResponse", targetNamespace = NS_RHIN, partName = "message")
    public OrganizationQueryResponseMessage organizationQuery(
    		@WebParam(partName = "message", name = "OrganizationQuery", targetNamespace = NS_RHIN)
    		OrganizationQueryRequest OrganizationQueryRequest
    );
}
